Skip to content

Remove timestamp fallbacks for non-batched publishing#141

Open
mjohanse-emr wants to merge 1 commit into
mainfrom
users/mjohanse/remove_timestamp_fallbacks
Open

Remove timestamp fallbacks for non-batched publishing#141
mjohanse-emr wants to merge 1 commit into
mainfrom
users/mjohanse/remove_timestamp_fallbacks

Conversation

@mjohanse-emr

@mjohanse-emr mjohanse-emr commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

What does this Pull Request accomplish?

This PR removes the timestamp fallbacks from non-batched publish measurement.

Before this change, if timestamp was not provided, we would fall back to one of these two values:

  1. Waveform t0 if we are publishing a waveform and t0 is set.
  2. The current time if we are publishing a waveform without t0 or publishing any other type.

The desire is to conceptually move this logic into the Datastore Server. The implementation may not look exactly the same, but the goal on the client side is just to pass through the provided timestamp without altering it.

Why should this Pull Request be merged?

AB#3926275

We want to remove the timestamp fallbacks until we decide how to handle it on the server side.

What testing has been done?

I updated two unit tests to check for a default PrecisionTimestamp if no timestamp is provided.
All unit tests and acceptance tests pass.

Signed-off-by: Michael Johansen <michael.johansen@emerson.com>
@mjohanse-emr mjohanse-emr marked this pull request as ready for review June 18, 2026 15:20
Copilot AI review requested due to automatic review settings June 18, 2026 15:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes client-side timestamp fallback behavior for non-batched publish_measurement calls so that the client passes through a caller-provided timestamp (or omits it when not provided), delegating any defaulting logic to the Datastore Server.

Changes:

  • Removed waveform-t0 and “now” timestamp fallback logic from gRPC conversion, replacing it with a simple “convert if provided” helper.
  • Updated DataStoreClient.publish_measurement to set the request timestamp directly from the optional caller-provided timestamp (no fallback).
  • Updated unit tests to expect a default/empty PrecisionTimestamp when no timestamp is provided.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.

File Description
tests/unit/data/test_publish_measurement.py Updates unit tests to align expectations with “no client-side timestamp fallback” behavior.
src/ni/datastore/data/_grpc_conversion.py Removes fallback timestamp selection logic and adds a simple optional timestamp conversion helper.
src/ni/datastore/data/_data_store_client.py Updates non-batched publish path to stop applying fallback timestamps client-side.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +278 to 279
timestamp=convert_measurement_timestamp_to_protobuf(timestamp),
)
request = cast(PublishMeasurementRequest, args[0]) # The PublishMeasurementRequest object
assert measurement_id == "response_id"
assert request.timestamp == hightime_datetime_to_protobuf(timestamp)
assert request.timestamp == PrecisionTimestamp()
args, __ = mocked_data_store_service_client.publish_measurement.call_args
request = cast(PublishMeasurementRequest, args[0])
assert request.timestamp == hightime_datetime_to_protobuf(now)
assert request.timestamp == PrecisionTimestamp()
args, __ = mocked_data_store_service_client.publish_measurement.call_args
request = cast(PublishMeasurementRequest, args[0])
assert request.timestamp == hightime_datetime_to_protobuf(now)
assert request.timestamp == PrecisionTimestamp()
@dixonjoel

Copy link
Copy Markdown
Contributor

We discussed that we'll wait until the corresponding LabVIEW changes are approved to submit this PR, so we ensure that if that one doesn't make it, we're not making consistency worse by submitting this PR.

@@ -37,9 +37,9 @@
from ni_grpc_extensions.channelpool import GrpcChannelPool

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving this comment to ensure we don't submit this PR until the associated LabVIEW changes have been approved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants